{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from transformers import AutoTokenizer, AutoConfig, GPTJForCausalLM"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import json\n",
    "\n",
    "with open('/home/ubuntu/server2/hansard/hansard-qa.json') as fopen:\n",
    "    hansard = json.load(fopen)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'original': '\\n22                                                            DR.30.10.2018                                                                                                                          \\n\\n \\ndan sebagainya. Cukai-cukai yang didapati daripada minuman keras, alkohol dan sebagainya \\nmasuk kepada kerajaan, kerajaan bayar gaji kita balik, itu pun haram pada kita.  [Disampuk]  \\n\\nTimbalan Yang di-Pertua [Dato’ Mohd Rashid Hasnon]: Yang Berhormat Padang \\nSerai, sila ajukan soalan. \\n\\nTuan Karupaiya Mutusami [Padang Serai]: Saya bertanya soalan pada pihak \\nkementerian, bolehkah samsu dihapuskan terus, tidak mahu ada samsu dalam negara kita. \\n[Dewan tepuk] Terima kasih. \\n\\nTuan Che Alias bin Hamid [Kemaman]: Sokong, sokong. \\n\\n■1150 \\n\\nTuan Chong Chieng Jen: Itu satu isu atau soalan yang begitu serius dan effect-\\nnya yang sangat luas. Saya rasa ini perlu dibawa ke dalam Jemaah Menteri untuk \\ndipertimbangkan dan diputuskan. Sekian, terima kasih. \\n\\n \\n\\n9. Dr. Hasan bin Bahrom [Tampin] minta Menteri Pengangkutan menyatakan adakah \\nkerajaan bercadang untuk menyemak semula jadual perjalanan yang kurang sesuai bagi \\nkereta api komuter dan Electric Train Service (ETS) dari Gemas ke Kuala Lumpur. \\n\\n \\n\\nTimbalan Menteri Pengangkutan [Dato’ Kamarudin Jaffar]: Assalamualaikum \\nwarahmatullahi wabarakatuh dan salam sejahtera. Terima kasih Tuan Yang di-Pertua. Terima \\nkasih sahabat saya Yang Berhormat Tampin. Ini soalan yang halal, jawapannya pun halal. \\n\\nUntuk makluman Yang Berhormat, KTMB pada masa ini masih belum ada \\nperancangan untuk menyemak semula jadual perjalanan bagi perkhidmatan komuter dan \\nETS daripada Gemas ke Kuala Lumpur. Bagi perkhidmatan komuter buat masa ini KTMB \\nmenyediakan 27 perkhidmatan komuter sehari di laluan sektor Pulau Sebang iaitu Tampin, \\nKL Sentral, Batu Caves. \\n\\nWalau bagaimanapun, stesen Gemas yang terletak kira-kira 53 kilometer daripada \\nstesen Pulau Sebang, Tampin tidak dijadikan sebagai stesen hentian bagi perkhidmatan \\nkomuter. Ini adalah kerana perkhidmatan komuter sebelum ini yang beroperasi di stesen \\nGemas tersebut terpaksa ditamatkan pada tahun 2016 setelah 10 bulan beroperasi \\ndisebabkan kurang mendapat sambutan penumpang. Berdasarkan statistik KTMB, bilangan \\npenumpang perkhidmatan komuter di stesen Gemas pada tahun 2016 adalah hanya seramai \\n2,010 orang iaitu puratanya enam orang sehari berbanding 1,000,330,668 orang di \\nSeremban, 89,553 penumpang di Sungai Gadut serta 135,297 penumpang di Pulau Sebang, \\nTampin pada tahun yang sama. \\n\\nBagi perkhidmatan ETS pula, buat masa ini KTMB menyediakan empat \\nperkhidmatan bagi laluan Gemas ke KL Sentral, termasuk stesen-stesen utama di utara \\nSemenanjung setiap hari. Penyusunan jadual train ETS ini banyak bergantung pada kerja-\\nkerja projek menaik taraf landasan di Lembah Klang yang kini sedang giat dijalankan serta \\nketersediaan, availability dengan izin, set-set train ETS yang boleh diguna pakai untuk tujuan \\noperasi. \\n\\nUntuk maklumat Yang Berhormat juga pada masa ini KTMB memiliki 15 set train \\nETS yang aktif untuk tujuan operasi. Jumlah set ini masih tidak mencukupi bagi memenuhi \\npermintaan orang ramai yang ingin menggunakan perkhidmatan ETS di seluruh negara. \\n\\nSehubungan itu, bagi menampung kekurangan set-set ETS sedia ada kerajaan telah \\nmeluluskan pembelian 19 tambahan set ETS baru yang masing-masing dijangka tiba bermula \\nsecara berfasa bulan Disember 2018 ini. Set yang seterusnya pada September 2021. \\n\\nPerkhidmatan ETS dijangka akan meningkat selaras dengan pertambahan bilangan \\nETS baru ini termasuk perjalanan yang melibatkan dari Gemas ke Kuala Lumpur. Terima \\nkasih. \\n\\nDr. Hasan bin Bahrom [Tampin]: Terima kasih kepada Yang Berhormat Timbalan \\nMenteri kerana menjawab dengan lengkap dan jelas. Soalan tambahan saya, kita dapati \\nbahawa perjalanan ETS daripada Gemas ke Kuala Lumpur bermula daripada jam 7.40 pagi. \\nKita dapati perjalanan ini tidak memungkinkan sekiranya ada orang-orang di Gemas untuk \\nbekerja di Kuala Lumpur menggunakan khidmat ETS untuk sampai ke Kuala Lumpur \\n\\n\\n',\n",
       "  'cleaned': \"dan sebagainya. Cukai-cukai yang didapati daripada minuman keras, alkohol dan sebagainya masuk kepada kerajaan, kerajaan bayar gaji kita balik, itu pun haram pada kita. [Disampuk] Timbalan Yang di-Pertua [Dato' Mohd Rashid Hasnon]: Yang Berhormat Padang Serai, sila ajukan soalan. Tuan Karupaiya Mutusami [Padang Serai]: Saya bertanya soalan pada pihak kementerian, bolehkah samsu dihapuskan terus, tidak mahu ada samsu dalam negara kita. [Dewan tepuk] Terima kasih. Tuan Che Alias bin Hamid [Kemaman]: Sokong, sokong. #1150 Tuan Chong Chieng Jen: Itu satu isu atau soalan yang begitu serius dan effect- nya yang sangat luas. Saya rasa ini perlu dibawa ke dalam Jemaah Menteri untuk dipertimbangkan dan diputuskan. Sekian, terima kasih. 9. Dr. Hasan bin Bahrom [Tampin] minta Menteri Pengangkutan menyatakan adakah kerajaan bercadang untuk menyemak semula jadual perjalanan yang kurang sesuai bagi kereta api komuter dan Electric Train Service (ETS) dari Gemas ke Kuala Lumpur. Timbalan Menteri Pengangkutan [Dato' Kamarudin Jaffar]: Assalamualaikum warahmatullahi wabarakatuh dan salam sejahtera. Terima kasih Tuan Yang di-Pertua. Terima kasih sahabat saya Yang Berhormat Tampin. Ini soalan yang halal, jawapannya pun halal. Untuk makluman Yang Berhormat, KTMB pada masa ini masih belum ada perancangan untuk menyemak semula jadual perjalanan bagi perkhidmatan komuter dan ETS daripada Gemas ke Kuala Lumpur. Bagi perkhidmatan komuter buat masa ini KTMB menyediakan 27 perkhidmatan komuter sehari di laluan sektor Pulau Sebang iaitu Tampin, KL Sentral, Batu Caves. Walau bagaimanapun, stesen Gemas yang terletak kira-kira 53 kilometer daripada stesen Pulau Sebang, Tampin tidak dijadikan sebagai stesen hentian bagi perkhidmatan komuter. Ini adalah kerana perkhidmatan komuter sebelum ini yang beroperasi di stesen Gemas tersebut terpaksa ditamatkan pada tahun 2016 setelah 10 bulan beroperasi disebabkan kurang mendapat sambutan penumpang. Berdasarkan statistik KTMB, bilangan penumpang perkhidmatan komuter di stesen Gemas pada tahun 2016 adalah hanya seramai 2,010 orang iaitu puratanya enam orang sehari berbanding 1,000,330,668 orang di Seremban, 89,553 penumpang di Sungai Gadut serta 135,297 penumpang di Pulau Sebang, Tampin pada tahun yang sama. Bagi perkhidmatan ETS pula, buat masa ini KTMB menyediakan empat perkhidmatan bagi laluan Gemas ke KL Sentral, termasuk stesen-stesen utama di utara Semenanjung setiap hari. Penyusunan jadual train ETS ini banyak bergantung pada kerja- kerja projek menaik taraf landasan di Lembah Klang yang kini sedang giat dijalankan serta ketersediaan, availability dengan izin, set-set train ETS yang boleh diguna pakai untuk tujuan operasi. Untuk maklumat Yang Berhormat juga pada masa ini KTMB memiliki 15 set train ETS yang aktif untuk tujuan operasi. Jumlah set ini masih tidak mencukupi bagi memenuhi permintaan orang ramai yang ingin menggunakan perkhidmatan ETS di seluruh negara. Sehubungan itu, bagi menampung kekurangan set-set ETS sedia ada kerajaan telah meluluskan pembelian 19 tambahan set ETS baru yang masing-masing dijangka tiba bermula secara berfasa bulan Disember 2018 ini. Set yang seterusnya pada September 2021. Perkhidmatan ETS dijangka akan meningkat selaras dengan pertambahan bilangan ETS baru ini termasuk perjalanan yang melibatkan dari Gemas ke Kuala Lumpur. Terima kasih. Dr. Hasan bin Bahrom [Tampin]: Terima kasih kepada Yang Berhormat Timbalan Menteri kerana menjawab dengan lengkap dan jelas. Soalan tambahan saya, kita dapati bahawa perjalanan ETS daripada Gemas ke Kuala Lumpur bermula daripada jam 7.40 pagi. Kita dapati perjalanan ini tidak memungkinkan sekiranya ada orang-orang di Gemas untuk bekerja di Kuala Lumpur menggunakan khidmat ETS untuk sampai ke Kuala Lumpur.\",\n",
       "  'no_page': 22,\n",
       "  'actual_no_page': 34,\n",
       "  'date': '2018-10-30',\n",
       "  'url': 'https://www.parlimen.gov.my/files/hindex/pdf/DR-30102018.pdf'},\n",
       " '{\\n  \"soalan\": [\\n    {\\n      \"soalan\": \"Adakah samsu akan dihapuskan terus dari negara kita?\",\\n      \"jawapan\": \"Ini perlu dibawa ke dalam Jemaah Menteri untuk dipertimbangkan dan diputuskan.\"\\n    },\\n    {\\n      \"soalan\": \"Adakah kerajaan bercadang untuk menyemak semula jadual perjalanan bagi kereta api komuter dan ETS dari Gemas ke Kuala Lumpur?\",\\n      \"jawapan\": \"KTMB pada masa ini masih belum ada perancangan untuk menyemak semula jadual perjalanan bagi perkhidmatan komuter dan ETS daripada Gemas ke Kuala Lumpur.\"\\n    },\\n    {\\n      \"soalan\": \"Berapa banyak set ETS yang dimiliki oleh KTMB untuk tujuan operasi?\",\\n      \"jawapan\": \"KTMB memiliki 15 set train ETS yang aktif untuk tujuan operasi.\"\\n    }\\n  ]\\n}']"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hansard[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'soalan': [{'soalan': 'Adakah samsu akan dihapuskan terus dari negara kita?',\n",
       "   'jawapan': 'Ini perlu dibawa ke dalam Jemaah Menteri untuk dipertimbangkan dan diputuskan.'},\n",
       "  {'soalan': 'Adakah kerajaan bercadang untuk menyemak semula jadual perjalanan bagi kereta api komuter dan ETS dari Gemas ke Kuala Lumpur?',\n",
       "   'jawapan': 'KTMB pada masa ini masih belum ada perancangan untuk menyemak semula jadual perjalanan bagi perkhidmatan komuter dan ETS daripada Gemas ke Kuala Lumpur.'},\n",
       "  {'soalan': 'Berapa banyak set ETS yang dimiliki oleh KTMB untuk tujuan operasi?',\n",
       "   'jawapan': 'KTMB memiliki 15 set train ETS yang aktif untuk tujuan operasi.'}]}"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "json.loads(hansard[0][1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "template = {\n",
    "    \"description\": \"Template used by Alpaca-LoRA.\",\n",
    "    \"prompt_input\": \"Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\\n\\n### Instruction:\\n{instruction}\\n\\n### Input:\\n{input}\\n\\n### Response:\\n\",\n",
    "    \"prompt_no_input\": \"Below is an instruction that describes a task. Write a response that appropriately completes the request.\\n\\n### Instruction:\\n{instruction}\\n\\n### Response:\\n\",\n",
    "    \"response_split\": \"### Response:\"    \n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "import random\n",
    "from tqdm import tqdm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "import malaya\n",
    "\n",
    "model = malaya.augmentation.abstractive.huggingface(model = 'mesolitica/finetune-noisy-translation-t5-small-bahasa-cased-v3', force_check = False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "_ = model.cuda()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "You're using a T5TokenizerFast tokenizer. Please note that with a fast tokenizer, using the `__call__` method is faster than using a method to encode the text followed by a call to the `pad` method to get a padded encoding.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[\"Apa makna nama 'Guinness'?\",\n",
       " \"Apakah maksud nama 'Guinness' itu?\",\n",
       " \"Apa maksud nama 'Guinness'?\",\n",
       " \"Apa makna nama 'Guinness' tu\",\n",
       " \"Apa makna nama 'Guinness' tu\"]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.generate([\"Apakah makna nama 'Guinness'?\"],\n",
    "              max_length = 100, do_sample=True, top_k=100, top_p=0.95, temperature=0.7,\n",
    "              num_return_sequences=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  5%|████▎                                                                                        | 1945/42440 [06:58<1:33:36,  7.21it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Unterminated string starting at: line 12 column 17 (char 764)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  6%|█████▊                                                                                       | 2678/42440 [09:38<2:16:39,  4.85it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 13 column 109 (char 1293)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  7%|██████▌                                                                                      | 3013/42440 [10:51<2:14:21,  4.89it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 9 column 18 (char 638)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  7%|██████▉                                                                                      | 3148/42440 [11:19<1:45:06,  6.23it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 9 column 18 (char 408)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 12%|██████████▊                                                                                  | 4957/42440 [18:03<2:51:16,  3.65it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 13 column 448 (char 1487)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 14%|████████████▊                                                                                | 5844/42440 [21:19<1:24:59,  7.18it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 9 column 20 (char 261)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 15%|██████████████                                                                                 | 6281/42440 [22:50<59:26, 10.14it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 5 column 475 (char 571)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 15%|██████████████▏                                                                              | 6471/42440 [23:36<1:34:45,  6.33it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 9 column 18 (char 421)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 15%|██████████████▏                                                                              | 6497/42440 [23:40<1:09:20,  8.64it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 9 column 96 (char 484)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 16%|██████████████▊                                                                              | 6779/42440 [24:39<2:32:32,  3.90it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 9 column 18 (char 312)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 16%|██████████████▉                                                                              | 6796/42440 [24:43<2:12:44,  4.48it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 13 column 47 (char 1120)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 25%|███████████████████████▍                                                                    | 10798/42440 [39:09<3:43:07,  2.36it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 13 column 77 (char 1028)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 26%|███████████████████████▍                                                                    | 10825/42440 [39:14<1:55:39,  4.56it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 4 column 35 (char 56)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 27%|█████████████████████████▎                                                                  | 11665/42440 [42:22<1:31:16,  5.62it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 12 column 57 (char 677)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 31%|████████████████████████████▍                                                               | 13093/42440 [47:38<2:13:19,  3.67it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting property name enclosed in double quotes: line 6 column 5 (char 687)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 32%|█████████████████████████████                                                               | 13396/42440 [48:43<1:42:41,  4.71it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 13 column 145 (char 1197)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 34%|███████████████████████████████▎                                                            | 14441/42440 [52:23<1:27:12,  5.35it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extra data: line 18 column 1 (char 1295)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 35%|███████████████████████████████▉                                                            | 14760/42440 [53:34<1:14:01,  6.23it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extra data: line 18 column 1 (char 697)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 38%|███████████████████████████████████▏                                                        | 16214/42440 [58:46<1:58:31,  3.69it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 9 column 18 (char 594)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 38%|███████████████████████████████████▎                                                        | 16292/42440 [59:00<1:55:16,  3.78it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 4 column 50 (char 71)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 41%|████████████████████████████████████▋                                                     | 17317/42440 [1:02:47<1:48:29,  3.86it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extra data: line 18 column 1 (char 870)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 42%|█████████████████████████████████████▋                                                    | 17781/42440 [1:04:26<1:27:47,  4.68it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 13 column 18 (char 610)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 44%|███████████████████████████████████████▏                                                  | 18472/42440 [1:06:56<1:10:29,  5.67it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 13 column 204 (char 1251)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 45%|████████████████████████████████████████▏                                                 | 18979/42440 [1:08:47<1:44:20,  3.75it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 4 column 50 (char 71)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 45%|████████████████████████████████████████▊                                                 | 19236/42440 [1:09:45<1:46:24,  3.63it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extra data: line 18 column 1 (char 976)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 50%|██████████████████████████████████████████████                                              | 21222/42440 [1:16:56<58:04,  6.09it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extra data: line 18 column 1 (char 1810)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 51%|█████████████████████████████████████████████▌                                            | 21498/42440 [1:17:56<1:12:06,  4.84it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extra data: line 18 column 1 (char 947)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 53%|████████████████████████████████████████████████▌                                           | 22377/42440 [1:21:06<47:10,  7.09it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting property name enclosed in double quotes: line 6 column 5 (char 592)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 53%|███████████████████████████████████████████████▊                                          | 22532/42440 [1:21:42<1:06:44,  4.97it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 13 column 84 (char 992)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 54%|█████████████████████████████████████████████████▋                                          | 22936/42440 [1:23:03<45:35,  7.13it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 13 column 18 (char 1069)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 55%|██████████████████████████████████████████████████▏                                         | 23153/42440 [1:23:52<42:28,  7.57it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Unterminated string starting at: line 13 column 18 (char 781)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 56%|██████████████████████████████████████████████████▏                                       | 23639/42440 [1:25:41<1:30:07,  3.48it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting property name enclosed in double quotes: line 6 column 5 (char 666)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 58%|███████████████████████████████████████████████████▉                                      | 24508/42440 [1:28:45<1:20:39,  3.71it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 9 column 97 (char 452)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 58%|████████████████████████████████████████████████████▏                                     | 24594/42440 [1:29:05<1:17:52,  3.82it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 9 column 18 (char 638)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 58%|████████████████████████████████████████████████████▍                                     | 24718/42440 [1:29:32<1:16:24,  3.87it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 1 column 1 (char 0)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 60%|█████████████████████████████████████████████████████▊                                    | 25388/42440 [1:31:53<1:05:06,  4.36it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 13 column 75 (char 963)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 63%|█████████████████████████████████████████████████████████▉                                  | 26750/42440 [1:36:43<54:33,  4.79it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 13 column 18 (char 899)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 64%|██████████████████████████████████████████████████████████▍                                 | 26978/42440 [1:37:36<44:46,  5.76it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 8 column 50 (char 577)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 64%|█████████████████████████████████████████████████████████▎                                | 27050/42440 [1:37:54<1:01:52,  4.14it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 13 column 107 (char 1081)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 64%|██████████████████████████████████████████████████████████▊                                 | 27104/42440 [1:38:07<39:36,  6.45it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 13 column 18 (char 790)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 64%|███████████████████████████████████████████████████████████                                 | 27274/42440 [1:38:46<32:07,  7.87it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extra data: line 18 column 1 (char 1012)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 65%|███████████████████████████████████████████████████████████▎                                | 27380/42440 [1:39:08<35:21,  7.10it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 9 column 18 (char 622)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 65%|███████████████████████████████████████████████████████████▋                                | 27536/42440 [1:39:42<59:45,  4.16it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extra data: line 18 column 1 (char 1005)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 66%|████████████████████████████████████████████████████████████▊                               | 28061/42440 [1:41:35<42:02,  5.70it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extra data: line 18 column 1 (char 757)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 67%|█████████████████████████████████████████████████████████████▎                              | 28285/42440 [1:42:21<41:06,  5.74it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 13 column 18 (char 888)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 67%|████████████████████████████████████████████████████████████▏                             | 28394/42440 [1:42:45<1:49:19,  2.14it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 5 column 174 (char 308)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 70%|████████████████████████████████████████████████████████████████▌                           | 29798/42440 [1:47:49<28:33,  7.38it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 13 column 18 (char 905)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 72%|██████████████████████████████████████████████████████████████████▏                         | 30521/42440 [1:50:25<20:19,  9.77it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 9 column 18 (char 437)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 74%|███████████████████████████████████████████████████████████████████▋                        | 31201/42440 [1:52:46<25:25,  7.37it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extra data: line 18 column 1 (char 757)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 74%|████████████████████████████████████████████████████████████████████                        | 31416/42440 [1:53:32<36:22,  5.05it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extra data: line 18 column 1 (char 798)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 75%|████████████████████████████████████████████████████████████████████▊                       | 31739/42440 [1:54:41<27:03,  6.59it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extra data: line 18 column 1 (char 789)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 77%|██████████████████████████████████████████████████████████████████████▍                     | 32471/42440 [1:57:21<29:55,  5.55it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 9 column 530 (char 823)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 77%|██████████████████████████████████████████████████████████████████████▊                     | 32687/42440 [1:58:06<28:09,  5.77it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 9 column 18 (char 507)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 77%|██████████████████████████████████████████████████████████████████████▉                     | 32749/42440 [1:58:18<23:33,  6.85it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 9 column 18 (char 494)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 78%|████████████████████████████████████████████████████████████████████████                    | 33238/42440 [2:00:10<15:04, 10.18it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 8 column 50 (char 372)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 80%|██████████████████████████████████████████████████████████████████████████                  | 34155/42440 [2:03:33<24:09,  5.72it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 8 column 50 (char 589)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 85%|█████████████████████████████████████████████████████████████████████████████▉              | 35974/42440 [2:10:16<32:28,  3.32it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 9 column 18 (char 449)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 86%|██████████████████████████████████████████████████████████████████████████████▉             | 36398/42440 [2:11:47<25:36,  3.93it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 9 column 267 (char 841)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 86%|███████████████████████████████████████████████████████████████████████████████▎            | 36577/42440 [2:12:25<15:18,  6.38it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 9 column 18 (char 397)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 88%|████████████████████████████████████████████████████████████████████████████████▌           | 37176/42440 [2:14:31<14:12,  6.18it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extra data: line 18 column 1 (char 689)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 88%|████████████████████████████████████████████████████████████████████████████████▉           | 37310/42440 [2:14:58<12:12,  7.01it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 13 column 378 (char 1140)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 89%|██████████████████████████████████████████████████████████████████████████████████▏         | 37919/42440 [2:17:10<17:01,  4.42it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extra data: line 18 column 1 (char 1016)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 91%|███████████████████████████████████████████████████████████████████████████████████▎        | 38437/42440 [2:19:01<10:16,  6.50it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 1 column 1 (char 0)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 91%|███████████████████████████████████████████████████████████████████████████████████▋        | 38629/42440 [2:19:43<16:03,  3.95it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 13 column 18 (char 858)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 92%|████████████████████████████████████████████████████████████████████████████████████▏       | 38833/42440 [2:20:30<08:08,  7.38it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 13 column 42 (char 1248)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 92%|████████████████████████████████████████████████████████████████████████████████████▌       | 39023/42440 [2:21:08<15:34,  3.66it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting value: line 9 column 18 (char 561)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 92%|████████████████████████████████████████████████████████████████████████████████████▋       | 39085/42440 [2:21:22<15:46,  3.54it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 13 column 79 (char 703)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 93%|█████████████████████████████████████████████████████████████████████████████████████▊      | 39612/42440 [2:23:10<11:55,  3.95it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 9 column 52 (char 652)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 94%|██████████████████████████████████████████████████████████████████████████████████████▊     | 40069/42440 [2:24:54<06:57,  5.68it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 13 column 419 (char 927)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 95%|███████████████████████████████████████████████████████████████████████████████████████▌    | 40389/42440 [2:26:02<07:25,  4.60it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 4 column 26 (char 47)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 95%|███████████████████████████████████████████████████████████████████████████████████████▊    | 40519/42440 [2:26:32<09:01,  3.55it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Unterminated string starting at: line 13 column 18 (char 1779)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 98%|█████████████████████████████████████████████████████████████████████████████████████████▋  | 41389/42440 [2:29:23<02:25,  7.22it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expecting ',' delimiter: line 13 column 332 (char 1032)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|████████████████████████████████████████████████████████████████████████████████████████████| 42440/42440 [2:32:26<00:00,  4.64it/s]\n"
     ]
    }
   ],
   "source": [
    "data_parlimen = []\n",
    "for d in tqdm(hansard):\n",
    "    try:\n",
    "        t = d[0]\n",
    "        a = d[1]\n",
    "        j_a = json.loads(d[1])\n",
    "        if random.random() > 0.5:\n",
    "            q = t['original']\n",
    "        else:\n",
    "            q = t['cleaned']\n",
    "        \n",
    "        \n",
    "        for r in j_a['soalan']:\n",
    "            randint = random.randint(0, 3)\n",
    "            if random.random() > 0.5:\n",
    "                generated = model.generate(\n",
    "                    [r['soalan']],\n",
    "                    max_length = 256, \n",
    "                    do_sample=True, top_k=100, top_p=0.95, temperature=0.7,\n",
    "                    num_return_sequences=5,\n",
    "                )\n",
    "                soalan = random.choice(generated)\n",
    "            else:\n",
    "                soalan = r['soalan']\n",
    "            \n",
    "            if random.random() > 0.5:\n",
    "                soalan = soalan.lower()\n",
    "            \n",
    "            if random.random() > 0.7:\n",
    "                q_ = f\"paragraph `{q}`, berdasarkan paragraph, jawab soalan `{soalan}`\"\n",
    "            else:\n",
    "                q_ = f\"paragraph `{q}`, {soalan}\"\n",
    "            \n",
    "            res = template[\"prompt_no_input\"].format(instruction=q_)\n",
    "            res = f\"{res}{r['jawapan']}\"\n",
    "            data_parlimen.append(res)\n",
    "        \n",
    "        k = '({\"soalan\": [{`soalan`, `jawapan`}]})'\n",
    "        p = f\"\"\"\n",
    "paragraph, `{t['cleaned']}`\n",
    "hasilkan 3 soalan dan jawapan khusus berdasarkan perenggan itu, kembalikan sebagai struktur JSON {k}\n",
    "        \"\"\"\n",
    "        res = template[\"prompt_no_input\"].format(instruction=p)\n",
    "        res = f\"{res}{a}\"\n",
    "        data_parlimen.append(res)\n",
    "\n",
    "    except Exception as e:\n",
    "        print(e)\n",
    "        pass"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "169482"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(data_parlimen)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\"Below is an instruction that describes a task. Write a response that appropriately completes the request.\\n\\n### Instruction:\\nparagraph `dan sebagainya. Cukai-cukai yang didapati daripada minuman keras, alkohol dan sebagainya masuk kepada kerajaan, kerajaan bayar gaji kita balik, itu pun haram pada kita. [Disampuk] Timbalan Yang di-Pertua [Dato' Mohd Rashid Hasnon]: Yang Berhormat Padang Serai, sila ajukan soalan. Tuan Karupaiya Mutusami [Padang Serai]: Saya bertanya soalan pada pihak kementerian, bolehkah samsu dihapuskan terus, tidak mahu ada samsu dalam negara kita. [Dewan tepuk] Terima kasih. Tuan Che Alias bin Hamid [Kemaman]: Sokong, sokong. #1150 Tuan Chong Chieng Jen: Itu satu isu atau soalan yang begitu serius dan effect- nya yang sangat luas. Saya rasa ini perlu dibawa ke dalam Jemaah Menteri untuk dipertimbangkan dan diputuskan. Sekian, terima kasih. 9. Dr. Hasan bin Bahrom [Tampin] minta Menteri Pengangkutan menyatakan adakah kerajaan bercadang untuk menyemak semula jadual perjalanan yang kurang sesuai bagi kereta api komuter dan Electric Train Service (ETS) dari Gemas ke Kuala Lumpur. Timbalan Menteri Pengangkutan [Dato' Kamarudin Jaffar]: Assalamualaikum warahmatullahi wabarakatuh dan salam sejahtera. Terima kasih Tuan Yang di-Pertua. Terima kasih sahabat saya Yang Berhormat Tampin. Ini soalan yang halal, jawapannya pun halal. Untuk makluman Yang Berhormat, KTMB pada masa ini masih belum ada perancangan untuk menyemak semula jadual perjalanan bagi perkhidmatan komuter dan ETS daripada Gemas ke Kuala Lumpur. Bagi perkhidmatan komuter buat masa ini KTMB menyediakan 27 perkhidmatan komuter sehari di laluan sektor Pulau Sebang iaitu Tampin, KL Sentral, Batu Caves. Walau bagaimanapun, stesen Gemas yang terletak kira-kira 53 kilometer daripada stesen Pulau Sebang, Tampin tidak dijadikan sebagai stesen hentian bagi perkhidmatan komuter. Ini adalah kerana perkhidmatan komuter sebelum ini yang beroperasi di stesen Gemas tersebut terpaksa ditamatkan pada tahun 2016 setelah 10 bulan beroperasi disebabkan kurang mendapat sambutan penumpang. Berdasarkan statistik KTMB, bilangan penumpang perkhidmatan komuter di stesen Gemas pada tahun 2016 adalah hanya seramai 2,010 orang iaitu puratanya enam orang sehari berbanding 1,000,330,668 orang di Seremban, 89,553 penumpang di Sungai Gadut serta 135,297 penumpang di Pulau Sebang, Tampin pada tahun yang sama. Bagi perkhidmatan ETS pula, buat masa ini KTMB menyediakan empat perkhidmatan bagi laluan Gemas ke KL Sentral, termasuk stesen-stesen utama di utara Semenanjung setiap hari. Penyusunan jadual train ETS ini banyak bergantung pada kerja- kerja projek menaik taraf landasan di Lembah Klang yang kini sedang giat dijalankan serta ketersediaan, availability dengan izin, set-set train ETS yang boleh diguna pakai untuk tujuan operasi. Untuk maklumat Yang Berhormat juga pada masa ini KTMB memiliki 15 set train ETS yang aktif untuk tujuan operasi. Jumlah set ini masih tidak mencukupi bagi memenuhi permintaan orang ramai yang ingin menggunakan perkhidmatan ETS di seluruh negara. Sehubungan itu, bagi menampung kekurangan set-set ETS sedia ada kerajaan telah meluluskan pembelian 19 tambahan set ETS baru yang masing-masing dijangka tiba bermula secara berfasa bulan Disember 2018 ini. Set yang seterusnya pada September 2021. Perkhidmatan ETS dijangka akan meningkat selaras dengan pertambahan bilangan ETS baru ini termasuk perjalanan yang melibatkan dari Gemas ke Kuala Lumpur. Terima kasih. Dr. Hasan bin Bahrom [Tampin]: Terima kasih kepada Yang Berhormat Timbalan Menteri kerana menjawab dengan lengkap dan jelas. Soalan tambahan saya, kita dapati bahawa perjalanan ETS daripada Gemas ke Kuala Lumpur bermula daripada jam 7.40 pagi. Kita dapati perjalanan ini tidak memungkinkan sekiranya ada orang-orang di Gemas untuk bekerja di Kuala Lumpur menggunakan khidmat ETS untuk sampai ke Kuala Lumpur.`, samsu akan dihapuskan terus dari negara kita?\\n\\n### Response:\\nIni perlu dibawa ke dalam Jemaah Menteri untuk dipertimbangkan dan diputuskan.\""
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_parlimen[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Below is an instruction that describes a task. Write a response that appropriately completes the request.\\n\\n### Instruction:\\nparagraph `terhad, maka saya ingin memberikan jawapan bertulis tentang peruntukan mengenai seksyen 375, apakah sebenarnya requirement seksyen 375 itu. Jadi, saya rasa marital rape ini, pihak kerajaan tidak akan menjadikan satu kesalahan kerana ia amat sukar untuk dibuktikan di mahkamah. Sebagai pengamal undang- undang yang agak lama menjadi peguam, saya mengatakan bahawa agak sukar untuk membuktikan marital rape ini. Sekiranya badan mahkamah berkemungkinan untuk dilepaskan lebih mudah daripada untuk disabitkan. Oleh sebab itulah, kerajaan mengambil kira semua faktor ini. Sebagai kerajaan saya rasa belum masanya mungkin untuk menjadikan ia sebagai satu kesalahan. Akan tetapi bagaimanapun kalau ada kes-kes yang melibatkan mungkin kekerasan dalam rumah tangga, seksyen 375A akan digunakan untuk memastikan hak-hak wanita dijamin oleh pihak kerajaan. Sekian, terima kasih. Puan Maria Chin binti Abdullah [Petaling Jaya]: Ada soalan tambahan. Saya rasa, tujuan saya untuk menimbulkan isu marital rape itu ialah kerana kebanyakan kes keganasan dalam rumah tangga yang mana marital rape ada berlaku. Kita juga ada kes-kes daripada persatuan wanita. Apa yang saya pandang ialah undang-undang sedia ada tidak berlaku adil kepada isteri-isteri yang menjadi mangsa rogol oleh suami sendiri. Seksyen 375A yang disebutkan oleh Yang Berhormat Timbalan Menteri iaitu hukuman bagi menyakiti isteri hanya memperuntukkan hukuman penjara maksimum selama lima tahun sahaja. Ini berbanding dengan hukuman rogol di bawah seksyen 375, yang mana maksimum ialah 20 tahun penjara. Akta Keganasan Rumah Tangga turut tidak mencukupi kerana hanya memberikan kuasa kepada mahkamah untuk mengeluarkan perintah perlindungan (protection order) dan tidak bersifat menghukum pesalah. Ini bermaksud suami yang melakukan kesalahan rogol tidak menerima hukuman setimpal dengan kesalahan yang dilakukan. Soalan tambahan saya ialah adakah kerajaan mempunyai rancangan untuk memperkenalkan undang-undang yang lebih tegas untuk menghukum sesiapa yang melakukan kesalahan marital rape atau spousal rape?. Tuan Mohamed Hanipa bin Maidin: Terima kasih kepada soalan tambahan daripada Yang Berhormat Petaling Jaya. Saya ingin betulkan sedikit apa yang diperkatakan oleh Yang Berhormat Petaling Jaya tadi. Sebenarnya kesalahan bagi rogol bukan saya kata seksyen 375, saya kata seksyen 376, hukuman dia adalah di bawah seksyen 376. Seksyen 375 adalah lebih kepada definisi. Jadi, saya mahu betulkan sedikit seksyen 376 ya yang melibatkan hukuman lima tahun tadi. Okey, untuk makluman Yang Berhormat Petaling Jaya, kes rogol ini dia agak berbeza dengan kes-kes lain kerana di sini untuk kes rogol ini beban pembuktiannya agak tinggi itu satu. Kedua, dia ada unsur-unsur yang lain daripada kes-kes lain yang biasa. Sebagai contoh, dalam kes rogol ia memerlukan apa yang kita panggil corroboration iaitu keterangan-keterangan yang berbentuk corroboration. Maknanya bukan setakat kita berikan keterangan tetapi ada keterangan sokongan. Keterangan sokongan ini selalunya menyebabkan kadangkala seseorang itu sukar untuk mendapatkan sabitan. Maknanya, tertuduh yang dituduh mungkin tidak dapat disabitkan bersalah. Jadi, sebab itulah saya rasa kerajaan mengambil kira segala faktor ini. Untuk makluman Yang Berhormat Petaling Jaya, bila melibatkan rumah tangga ini, yang saya katakan tadi, inherently dekat situ ada unsur- unsur keraguan. Dalam prinsip kes jenayah ini, keraguan ini akan sentiasa ditafsir memihak kepada tertuduh. Any benefit of the doubt dengan izin, must be given to the accused. Oleh sebab itu saya ingin mengatakan bahawa memang mungkin kita boleh meletakkan satu kesalahan marital rape atas alasan kita hendak pastikan wanita dilindungi. Akan tetapi, apa guna kita ada satu seksyen yang diletakkan dalam kesalahan tetapi bila kita bawa kes ke mahkamah, berkemungkinan untuk mendapat sabitan itu terlalu kecil. Ini bukan bermakna kita condone dengan izin, perbuatan tersebut. Oleh sebab itulah kita merasakan seksyen 375A itu buat sementara ini adalah satu seksyen yang boleh digunakan untuk kita menghukum mereka-mereka yang mungkin melakukan kekerasan ke atas wanita. Untuk makluman Yang Berhormat Petaling Jaya, saya telah berhubung dengan pihak Peguam Negara, setakat ini dalam negara kita walaupun tadi kata ada banyak laporan- laporan, setakat ini di dalam kes di negara kita hanya satu kes sahaja yang pernah didakwa di mahkamah yang melibatkan bukan orang Malaysia, ia melibatkan orang lain, negara dari luar negara. Apabila dibawa ke mahkamah, yang melibatkan seorang wanita yang diletakkan di bawah dua pertuduhan seksyen 375A tetapi apabila di mahkamah akhirnya wanita itu telah menarik balik report dia dan kes itu telah pun tidak diteruskan. Lelaki yang didakwa itu.`, Dah berapa tu kes yg didakwa di mahkamah yg melibatkan rogol talak talak?\\n\\n### Response:\\nSetakat ini di dalam negara kita hanya satu kes sahaja yang pernah didakwa di mahkamah yang melibatkan bukan orang Malaysia, ia melibatkan orang lain, negara dari luar negara.'"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_parlimen[6]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('prepared-parliment.json', 'w') as fopen:\n",
    "    json.dump(data_parlimen, fopen)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
